inline Matrix3& Spatial::rotate()
{
	return m_rotate;
}

inline const Matrix3& Spatial::rotate() const
{
	return m_rotate;
}

inline Vector3& Spatial::translate() 
{
	return m_translate;
}

inline const Vector3& Spatial::translate() const 
{
	return m_translate;
}

inline Real& Spatial::scale()
{
	return m_scale;
}

inline const Real& Spatial::scale() const
{
	return m_scale;
}

inline Matrix3& Spatial::world_rotate()
{
	return m_world_rotate;
}

inline const Matrix3& Spatial::world_rotate() const
{
	return m_world_rotate;
}

inline Vector3& Spatial::world_translate() 
{
	return m_world_translate;
}

inline const Vector3& Spatial::world_translate() const 
{
	return m_world_translate;
}

inline Real& Spatial::world_scale()
{
	return m_world_scale;
}

inline const Real& Spatial::world_scale() const
{
	return m_world_scale;
}

inline void Spatial::set_world_transform_to_identity()
{
	m_world_rotate = Matrix3::IDENTITY;
	m_world_translate = Vector3::ZERO;
	m_world_scale = 1.0;
}

inline Bound& Spatial::world_bound()
{
	return m_world_bound;
}

inline const Bound& Spatial::world_bound() const
{
	return m_world_bound;
}

inline bool& Spatial::force_cull()
{
	return m_force_cull;
}

inline const bool& Spatial::force_cull() const
{
	return m_force_cull;
}

inline void Spatial::set_parent( Node* parent )
{
	m_parent = parent;
}

inline Node* Spatial::get_parent()
{
	return m_parent;
}
